package com.kinghood.productcenter.service.base;

import com.kinghood.infrastructure.model.dto.StatusReqDTO;
import com.kinghood.productcenter.common.model.dao.base.BaseCodeRuleDO;
import com.baomidou.mybatisplus.extension.service.IService;
import com.kinghood.productcenter.common.model.dto.base.CodeRuleReqDTO;
import com.kinghood.productcenter.common.model.dto.base.ListCodeRuleQueryDTO;

/**
 * <p>
 * 编码规则表 服务类
 * </p>
 *
 * @author KingHood
 * @since 2023-12-20
 */
public interface IBaseCodeRuleService extends IService<BaseCodeRuleDO> {

    /**
     * 列表
     *
     * @param param 参数
     * @return @return {@link Object }
     * @author jp
     * @date 2024/01/17 14:31
     */
    Object listCodeRule(ListCodeRuleQueryDTO param);

    /**
     * 新增更新
     *
     * @param param 参数
     * @return
     * @author jp
     * @date 2024/01/18 10:58
     */
    void addorUpdateCodeRule(CodeRuleReqDTO param);

    /**
     * 删除
     *
     * @param id 身份证件
     * @return
     * @author jp
     * @date 2024/01/18 14:23
     */
    void delCodeRuleById(Long id);

    /**
     * 根据ID查询详情
     *
     * @param id 身份证件
     * @return @return {@link Object }
     * @author jp
     * @date 2024/01/18 14:33
     */
    CodeRuleReqDTO detailCodeRule(Long id);

    /**
     * 更新状态
     *
     * @param param 参数
     * @return
     * @author jp
     * @date 2024/01/18 14:45
     */
    void updateCodeRuleStatus(StatusReqDTO param);

    /**
     * 获取编码
     *
     * @param code 密码
     * @return @return {@link Object }
     * @author jp
     * @date 2024/01/18 17:34
     */
    Object getCodeByRule(String code);
}
